package com.example.hxds.common.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @BelongsProject: hxds
 * @BelongsPackage: com.example.hxds.common.config.xss
 * @Author: caohaoran
 * @CreateTime: 2025-10-17  08:58
 * @Description: TODO
 * @Version: 1.0
 */
@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        //指定哪些路径需要CORS配置 匹配所有URL路径，包括所有控制器接口
        registry.addMapping("/**")
                //允许哪些源（域名）访问资源 允许所有域名访问（通配符）
                .allowedOrigins("*")
                //是否允许发送Cookie等凭证信息
                .allowCredentials(true)
                //允许的HTTP方法 配置了常见的RESTful方法：GET（查询）、POST（新增）、PUT（更新）、DELETE（删除）、PATCH（部分更新）
                .allowedMethods("GET", "POST", "PUT", "DELETE","PATCH")
                //预检请求的缓存时间（秒）表示1小时内，同一URL的预检请求不会重复发送
                //预检请求（Preflight Request）是CORS（跨域资源共享）机制中的一种特殊请求，用于在实际请求发送之前，先向服务器询问是否允许该跨域请求。
                .maxAge(3600);
    }
}
